from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 技能0(主动技能):
    名称 = "回旋踢"
    所在等级 = 10
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 4
    MP = [18, 196]
    无色消耗 = 0
    data0 = [0, 1226, 1350, 1475, 1601, 1725, 1849, 1975, 2099, 2223, 2347, 2474, 2598, 2722, 2847, 2971, 3095, 3219, 3344, 3470, 3594, 3719, 3843, 3968, 4092, 4217, 4342, 4467, 4592, 4716, 4840, 4966, 5090, 5215, 5341,
             5465, 5589, 5713, 5838, 5962, 6086, 6210, 6336, 6461, 6585, 6710, 6834, 6959, 7083, 7209, 7333, 7458, 7583, 7707, 7831, 7957, 8082, 8206, 8331, 8456, 8580, 8704, 8829, 8954, 9078, 9202, 9327, 9452, 9576, 9702, 9827]
    hit0 = 2
    TP成长 = 0.1
    TP上限 = 7


class 技能1(主动技能):
    名称 = "烟尘弹"
    所在等级 = 10
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6
    MP = [300, 322]
    无色消耗 = 0
    data0 = [0, 558, 614, 671, 728, 784, 840, 899, 954, 1011, 1069, 1124, 1181, 1238, 1293, 1351, 1409, 1464, 1522, 1579, 1635, 1691, 1749, 1805, 1861, 1917, 1976, 2032, 2088, 2146, 2202, 2258, 2315, 2374, 2429, 2486,
             2544, 2599, 2656, 2713, 2769, 2826, 2881, 2939, 2997, 3053, 3109, 3167, 3223, 3279, 3336, 3392, 3450, 3507, 3563, 3620, 3676, 3733, 3789, 3846, 3904, 3961, 4017, 4074, 4131, 4187, 4244, 4300, 4356, 4414, 4471]
    hit0 = 6
    TP成长 = 0.1
    TP上限 = 7


class 技能2(主动技能):
    名称 = "致命射击"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6.9
    MP = [60, 560]
    无色消耗 = 0
    data0 = [0, 1725, 1900, 2075, 2250, 2426, 2600, 2777, 2953, 3128, 3303, 3478, 3653, 3828, 4003, 4178, 4354, 4529, 4705, 4879, 5054, 5230, 5405, 5579, 5755, 5932, 6107, 6283, 6457, 6632, 6808, 6983, 7157, 7332, 7509, 7684, 7858,
             8034, 8209, 8384, 8559, 8734, 8909, 9085, 9262, 9436, 9612, 9787, 9962, 10137, 10312, 10487, 10664, 10838, 11013, 11188, 11364, 11538, 11713, 11889, 12064, 12239, 12415, 12590, 12765, 12942, 13116, 13291, 13467, 13642, 13816]
    hit0 = 2
    TP成长 = 0.1
    TP上限 = 7


class 技能3(被动技能):
    名称 = '左轮奥义'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10

    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        if self.等级 <= 10:
            return round(1.1 + 0.01 * self.等级, 5)
        else:
            return round(1.2 + 0.02 * (self.等级 - 10), 5)


class 技能4(被动技能):
    名称 = '花式枪术'
    所在等级 = 20
    等级上限 = 20
    基础等级 = 10

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            if self.等级 <= 10:
                return round(1 + 0.01 * self.等级, 5)
            else:
                return round(1.1 + 0.02 * (self.等级 - 10), 5)


class 技能5(主动技能):
    名称 = '复仇反击'
    所在等级 = 25
    等级上限 = 1
    基础等级 = 1
    MP = [252, 252]
    data0 = [int(i) for i in [0, 0]]
    hit0 = 1
    CD = 4.0
    # 自身有TP，相关数据的致命射击也有TP
    TP成长 = 0.1
    TP上限 = 7

    def 等效百分比(self, **argv):
        char: Character = argv.get('char', {})
        致命射击 = char.get_skill_by_name('致命射击')
        self.data1 = [0, 致命射击.data0[致命射击.等级]]
        self.hit1 = char.get_skill_by_name("致命射击").hit0
        self.power1 = 1+致命射击.TP等级*致命射击.TP成长
        return super().等效百分比(**argv)


class 技能6(主动技能):
    名称 = "浮空劫击"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 4.2
    MP = [50, 420]
    无色消耗 = 0
    data0 = [0, 2297, 2530, 2763, 2996, 3231, 3464, 3698, 3931, 4164, 4397, 4630, 4863, 5096, 5329, 5564, 5797, 6030, 6263, 6495, 6728, 6961, 7195, 7428, 7662, 7895, 8128, 8362, 8595, 8828, 9061, 9294, 9528, 9761, 9994, 10227, 10460, 10693,
             10928, 11161, 11395, 11628, 11861, 12094, 12327, 12560, 12793, 13026, 13261, 13494, 13727, 13960, 14194, 14427, 14660, 14894, 15127, 15360, 15593, 15827, 16060, 16293, 16526, 16759, 16992, 17225, 17458, 17692, 17926, 18159, 18393]
    hit0 = 2
    TP成长 = 0.1
    TP上限 = 7


class 技能7(主动技能):
    名称 = '致命回射'
    所在等级 = 30
    等级上限 = 1
    基础等级 = 1
    MP = [150, 150]
    data0 = [int(i) for i in [0, 0]]
    hit0 = 1
    倍率 = 1.5
    CD = 8.3
    # 自身无TP，TP就是致命射击
    TP成长 = 0.1
    TP上限 = 7

    def TP加成(self):
        return 1.0

    def 等效百分比(self, **argv):
        char: Character = argv.get('char', {})
        致命射击 = char.get_skill_by_name('致命射击')
        self.data1 = [0, 致命射击.data0[致命射击.等级]]
        self.hit1 = char.get_skill_by_name("致命射击").hit0
        self.power1 = 1+致命射击.TP等级*致命射击.TP成长
        return super().等效百分比(**argv)


class 技能8(主动技能):
    名称 = "三连发"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 8
    MP = [50, 420]
    无色消耗 = 0
    data0 = [0, 708, 781, 853, 924, 997, 1069, 1141, 1213, 1285, 1357, 1431, 1502, 1575, 1647, 1719, 1791, 1863, 1935, 2008, 2078, 2150, 2223, 2295, 2366, 2439, 2511, 2583, 2656, 2728, 2801, 2872, 2944, 3017, 3089, 3161,
             3233, 3305, 3378, 3449, 3521, 3594, 3665, 3736, 3810, 3882, 3955, 4026, 4098, 4171, 4243, 4314, 4387, 4459, 4532, 4603, 4675, 4748, 4819, 4891, 4965, 5036, 5108, 5181, 5252, 5323, 5396, 5468, 5541, 5613, 5684]
    hit0 = 1
    data1 = [0, 3197, 3521, 3846, 4170, 4495, 4819, 5145, 5468, 5793, 6119, 6443, 6766, 7092, 7416, 7741, 8065, 8389, 8714, 9039, 9363, 9689, 10012, 10337, 10661, 10987, 11311, 11633, 11959, 12284, 12610, 12932, 13258, 13582, 13907, 14231, 14557,
             14880, 15205, 15529, 15855, 16177, 16503, 16828, 17152, 17477, 17801, 18127, 18451, 18775, 19102, 19424, 19749, 20073, 20399, 20723, 21046, 21371, 21695, 22021, 22344, 22669, 22994, 23319, 23643, 23967, 24292, 24617, 24942, 25267, 25590]
    hit1 = 2
    TP成长 = 0.1
    TP上限 = 7


class 技能9(主动技能):
    名称 = "移动射击"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 24.3
    MP = [200, 1680]
    无色消耗 = 1
    data0 = [0, 677, 745, 816, 885, 953, 1022, 1091, 1159, 1229, 1297, 1367, 1435, 1505, 1574, 1643, 1711, 1781, 1849, 1919, 1987, 2055, 2125, 2194, 2263, 2332, 2401, 2470, 2539, 2607, 2677, 2745, 2815, 2884, 2953, 3022,
             3090, 3160, 3228, 3297, 3366, 3435, 3503, 3574, 3642, 3712, 3780, 3848, 3918, 3987, 4055, 4124, 4193, 4264, 4332, 4400, 4470, 4538, 4607, 4676, 4745, 4814, 4883, 4951, 5020, 5090, 5160, 5228, 5297, 5366, 5434]
    hit0 = 20
    TP成长 = 0.1
    TP上限 = 5


class 技能10(主动技能):
    名称 = "乱射"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 17.6
    MP = [150, 1260]
    无色消耗 = 1
    data0 = [0, 703, 775, 846, 919, 990, 1061, 1133, 1205, 1277, 1348, 1420, 1492, 1564, 1634, 1706, 1778, 1850, 1922, 1993, 2066, 2137, 2208, 2279, 2352, 2423, 2495, 2566, 2639, 2711, 2780, 2851, 2924, 2996, 3067, 3139,
             3211, 3283, 3353, 3425, 3497, 3569, 3640, 3712, 3785, 3856, 3927, 3998, 4071, 4142, 4214, 4285, 4358, 4428, 4500, 4571, 4644, 4716, 4787, 4859, 4931, 5001, 5072, 5144, 5215, 5288, 5359, 5431, 5503, 5574, 5646]
    hit0 = 20
    TP成长 = 0
    TP上限 = 5

    def TP加成(self):
        return 1.0

    def 等效百分比(self, **argv):
        self.hit0 = 20 + self.TP等级 * 2
        return super().等效百分比(**argv)

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.22*1.1


class 技能11(主动技能):
    名称 = "多重射击"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 19.8
    MP = [150, 1260]
    无色消耗 = 1
    data0 = [0, 3168, 3489, 3811, 4133, 4454, 4776, 5098, 5419, 5740, 6062, 6383, 6705, 7028, 7349, 7671, 7990, 8313, 8634, 8956, 9278, 9600, 9922, 10242, 10564, 10885, 11208, 11529, 11851, 12174, 12494, 12814, 13137, 13459, 13780, 14103, 14423,
             14745, 15065, 15388, 15709, 16031, 16353, 16674, 16996, 17318, 17639, 17960, 18282, 18603, 18925, 19248, 19569, 19891, 20210, 20533, 20854, 21176, 21499, 21820, 22142, 22463, 22784, 23106, 23428, 23749, 24071, 24391, 24714, 25035, 25356]
    hit0 = 5
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 1
        self.倍率 *= 6.55


class 技能12(主动技能):
    名称 = "双鹰回旋"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 44.5
    MP = [360, 3024]
    无色消耗 = 2
    data0 = [0, 629, 692, 758, 822, 885, 949, 1013, 1077, 1140, 1204, 1270, 1333, 1397, 1460, 1525, 1589, 1652, 1716, 1782, 1845, 1909, 1972, 2037, 2101, 2164, 2228, 2293, 2357, 2421, 2485, 2549, 2612, 2676, 2740, 2805,
             2869, 2932, 2997, 3061, 3124, 3188, 3254, 3317, 3381, 3444, 3509, 3572, 3636, 3700, 3765, 3829, 3892, 3956, 4021, 4084, 4148, 4211, 4277, 4341, 4404, 4468, 4533, 4596, 4660, 4723, 4789, 4853, 4916, 4980, 5044]
    hit0 = 16
    data1 = [0, 651, 717, 783, 850, 916, 982, 1047, 1113, 1180, 1246, 1313, 1378, 1445, 1511, 1578, 1644, 1709, 1775, 1842, 1908, 1974, 2040, 2107, 2173, 2240, 2305, 2371, 2437, 2503, 2570, 2635, 2702, 2768, 2835, 2901,
             2967, 3033, 3100, 3165, 3231, 3297, 3363, 3430, 3496, 3563, 3628, 3695, 3761, 3828, 3892, 3959, 4025, 4092, 4158, 4225, 4290, 4357, 4423, 4489, 4556, 4620, 4687, 4753, 4820, 4885, 4952, 5018, 5085, 5151, 5218]
    hit1 = 18
    data2 = [0, 683, 752, 823, 893, 962, 1031, 1101, 1170, 1240, 1309, 1378, 1448, 1517, 1588, 1658, 1726, 1796, 1865, 1935, 2005, 2073, 2143, 2213, 2282, 2353, 2422, 2491, 2561, 2630, 2700, 2769, 2838, 2908, 2978, 3046,
             3117, 3186, 3256, 3326, 3394, 3464, 3534, 3603, 3673, 3743, 3811, 3882, 3951, 4021, 4090, 4159, 4229, 4299, 4368, 4437, 4506, 4576, 4647, 4716, 4785, 4855, 4924, 4994, 5064, 5132, 5202, 5271, 5341, 5412, 5480]
    hit2 = 29
    TP成长 = 0.05
    TP上限 = 5

    攻击间隔 = 1
    是否有护石 = 1

    形态 = ["满", "常规"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "满":
            self.hit0 = 16
            self.hit1 = 18
            self.hit2 = 29
            if '双鹰回旋' in char.护石栏:
                self.hit0 = 0
                self.hit1 = 28  # 护石+10
                self.power1 = 1.08
                self.hit2 = 46  # 护石+17
                self.power2 = 1.15
        if 形态 == "常规":
            self.hit0 = 16
            self.hit1 = 18
            self.hit2 = 22
            if '双鹰回旋' in char.护石栏:
                self.hit0 = 0
                self.hit1 = 28  # 护石+10
                self.power1 = 1.08
                self.hit2 = 37  # 护石+15
                self.power2 = 1.15
        self.hit0 += int(((4 / 5) * self.TP等级) / self.攻击间隔)
        self.hit1 += int(((6 / 5) * self.TP等级) / self.攻击间隔)
        self.hit2 += int(((8 / 5) * self.TP等级) / self.攻击间隔)

    def 装备护石(self, char):
        self.hit0 = 0
        self.power1 = 1.08
        self.power2 = 1.15


class 技能13(被动技能):
    名称 = '死亡印记'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.065 + 0.02 * self.等级, 5)


class 技能14(主动技能):
    名称 = "疯狂屠戮"
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 145
    MP = [1000, 8400]
    无色消耗 = 5
    data0 = [0, 800, 985, 1172, 1358, 1546, 1732, 1916, 2104, 2290, 2476, 2660, 2849, 3035, 3221, 3406, 3593, 3779, 3966, 4152, 4337, 4524, 4710, 4896, 5081,
             5269, 5455, 5641, 5827, 6012, 6199, 6386, 6572, 6757, 6944, 7130, 7316, 7501, 7688, 7875, 8061, 8247, 8433, 8619, 8805, 8992, 9178, 9364, 9550, 9736, 9922]
    hit0 = 70
    data1 = [0, 1416, 1746, 2073, 2402, 2733, 3061, 3389, 3717, 4047, 4377, 4704, 5034, 5362, 5692, 6019, 6349, 6678, 7006, 7337, 7664, 7993, 8323, 8652, 8980, 9308, 9638,
             9968, 10295, 10625, 10953, 11282, 11611, 11940, 12269, 12597, 12928, 13256, 13584, 13913, 14243, 14572, 14900, 15229, 15558, 15887, 16217, 16545, 16873, 17203, 17532]
    hit1 = 25
    data2 = [0, 978, 1204, 1433, 1659, 1886, 2113, 2341, 2567, 2795, 3021, 3249, 3477, 3703, 3930, 4158, 4385, 4611, 4839, 5066, 5293, 5522, 5747, 5976, 6203, 6430,
             6656, 6885, 7111, 7338, 7565, 7793, 8019, 8247, 8473, 8701, 8929, 9155, 9383, 9610, 9837, 10064, 10293, 10518, 10747, 10974, 11201, 11429, 11655, 11883, 12110]
    hit2 = 3


class 技能15(主动技能):
    名称 = "死亡突袭"
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 30
    MP = [400, 1620]
    无色消耗 = 2
    data0 = [0, 9907, 10913, 11918, 12924, 13928, 14934, 15940, 16944, 17949, 18955, 19960, 20965, 21971, 22977, 23982, 24986, 25992, 26997, 28004, 29008, 30013, 31019, 32023, 33028,
             34034, 35040, 36045, 37050, 38055, 39061, 40065, 41071, 42077, 43082, 44087, 45092, 46098, 47104, 48108, 49114, 50119, 51125, 52129, 53134, 54140, 55145, 56151, 57156, 58161, 59167]
    hit0 = 3
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.31
        self.CDR *= 0.90


class 技能16(主动技能):
    名称 = "压制射击"
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 50
    MP = [800, 1680]
    无色消耗 = 3
    data0 = [0, 2213, 2439, 2664, 2890, 3113, 3339, 3565, 3788, 4014, 4237, 4463, 4688, 4913, 5138, 5362, 5588, 5812, 6037, 6263, 6486, 6712, 6937, 7161, 7386, 7611,
             7836, 8060, 8287, 8511, 8736, 8962, 9185, 9411, 9635, 9860, 10085, 10310, 10535, 10759, 10985, 11210, 11434, 11659, 11884, 12109, 12333, 12558, 12784, 13008, 13233]
    hit0 = 20
    data1 = [0, 4923, 5424, 5922, 6423, 6921, 7422, 7922, 8422, 8921, 9420, 9920, 10421, 10919, 11420, 11920, 12420, 12919, 13418, 13918, 14417, 14917, 15418, 15917, 16417, 16917,
             17416, 17917, 18415, 18915, 19416, 19915, 20415, 20913, 21414, 21915, 22413, 22914, 23414, 23912, 24413, 24913, 25412, 25912, 26411, 26912, 27411, 27911, 28411, 28911, 29409]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 24
        self.power1 = 2.42


class 技能17(主动技能):
    名称 = "疾风骤雨"
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 40
    MP = [580, 4500]
    无色消耗 = 3
    data0 = [0, 3453, 3804, 4153, 4504, 4855, 5206, 5557, 5906, 6258, 6608, 6959, 7309, 7658, 8011, 8360, 8710, 9062, 9412, 9763, 10112, 10463, 10815, 11165, 11515, 11865, 12217,
             12568, 12917, 13267, 13618, 13969, 14319, 14669, 15021, 15372, 15722, 16072, 16423, 16774, 17125, 17474, 17825, 18176, 18527, 18877, 19227, 19578, 19928, 20278, 20629]
    hit0 = 24

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 3 * 6
        self.power0 = 1 + 0.53 + 0.28


class 技能18(被动技能):
    名称 = '射击掌握'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40
    关联技能 = ['所有']
    非关联技能 = ['致命射击','致命回射']
    关联技能2 = ['致命射击','致命回射']
    冷却关联技能 = ['致命回射']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.22 + 0.02 * self.等级, 5)

    def 加成倍率2(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round((1.305 + 0.045 * self.等级)/(1.22 + 0.02 * self.等级), 5)

    def CD缩减倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1 - 0.235 - 0.015 * self.等级, 3)


class 技能19(主动技能):
    名称 = "抹杀"
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 45
    MP = [800, 8000]
    无色消耗 = 5
    data0 = [0, 11247, 12388, 13531, 14673, 15814, 16954, 18096, 19237, 20379, 21520, 22661, 23802, 24944, 26085, 27227, 28367, 29508, 30651, 31793, 32934, 34075, 35215, 36358, 37499,
             38640, 39781, 40924, 42064, 43205, 44346, 45487, 46630, 47770, 48912, 50053, 51195, 52337, 53478, 54618, 55760, 56901, 58043, 59184, 60326, 61467, 62608, 63749, 64890, 66033, 67174]
    hit0 = 7

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 14
        self.power0 = 0.5*1.17*(1+0.14)


class 技能20(主动技能):
    名称 = "第七翼动"
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 180
    MP = [2500, 8000]
    无色消耗 = 10
    data0 = [0, 9611, 11839, 14068, 16297, 18526, 20752, 22981, 25210, 27439, 29668, 31897, 34125, 36354, 38583, 40812, 43041, 45270, 47499, 49726, 51955, 54184, 56412, 58641, 60871, 63100,
             65328, 67557, 69786, 72014, 74243, 76473, 78699, 80928, 83157, 85386, 87614, 89843, 92072, 94300, 96530, 98758, 100987, 103216, 105444, 107673, 109902, 112131, 114360, 116588, 118817]
    hit0 = 13
    data1 = [0, 53548, 65964, 78381, 90800, 103216, 115633, 128050, 140467, 152884, 165300, 177720, 190137, 202553, 214971, 227387, 239804, 252223, 264639, 277056, 289472, 301890, 314307, 326723, 339143, 351560,
             363976, 376393, 388810, 401227, 413645, 426062, 438479, 450896, 463312, 475730, 488146, 500565, 512983, 525399, 537816, 550234, 562651, 575067, 587484, 599902, 612319, 624735, 637153, 649570, 661988]
    hit1 = 1


class 技能21(主动技能):
    名称 = "爆燃突击"
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 60
    MP = [1064, 7980]
    无色消耗 = 7
    data0 = [0, 15242, 16788, 18337, 19882, 21430, 22976, 24523, 26069, 27616, 29162, 30709, 32256, 33803, 35348, 36896, 38442, 39988, 41535, 43081, 44628, 46174, 47721, 49268, 50814,
             52361, 53907, 55453, 57000, 58548, 60094, 61641, 63188, 64735, 66280, 67828, 69374, 70921, 72467, 74013, 75560, 77106, 78654, 80200, 81747, 83293, 84840, 86386, 87933, 89480, 91026]
    hit0 = 6
    data1 = [0, 60977, 67164, 73351, 79538, 85724, 91909, 98096, 104282, 110470, 116657, 122841, 129028, 135214, 141401, 147588, 153775, 159960, 166147, 172333, 178520, 184705, 190893, 197080, 203265, 209452,
             215637, 221824, 228011, 234197, 240384, 246571, 252756, 258943, 265129, 271317, 277503, 283688, 289875, 296061, 302248, 308435, 314620, 320807, 326993, 333180, 339367, 345553, 351738, 357925, 364112]
    hit1 = 1


class 技能22(被动技能):
    名称 = '卓尔不群'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能23(主动技能):
    名称 = "鹰眸·致命危机"
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 290
    MP = [4028, 8056]
    无色消耗 = 15
    data0 = [0, 3007, 3704, 4402, 5101, 5798, 6496, 7194, 7891, 8589, 9288, 9986, 10684, 11381, 12078, 12778, 13475, 14173, 14870, 15568, 16264, 16963, 17661, 18358, 19056, 19754,
             20451, 21150, 21847, 22545, 23243, 23940, 24638, 25337, 26034, 26732, 27429, 28127, 28825, 29523, 30221, 30918, 31617, 32315, 33011, 33709, 34406, 35105, 35803, 36500, 37198]
    hit0 = 60
    data1 = [0, 15474, 19063, 22651, 26240, 29828, 33417, 37004, 40592, 44180, 47771, 51359, 54947, 58536, 62124, 65712, 69303, 72891, 76479, 80068, 83655, 87243, 90832, 94421, 98010, 101598, 105187,
             108775, 112364, 115953, 119541, 123129, 126717, 130307, 133896, 137483, 141072, 144660, 148248, 151837, 155427, 159014, 162604, 166192, 169780, 173369, 176958, 180545, 184133, 187723, 191311]
    hit1 = 6
    data2 = [0, 15474, 19063, 22651, 26240, 29828, 33417, 37004, 40592, 44180, 47771, 51359, 54947, 58536, 62124, 65712, 69303, 72891, 76479, 80068, 83655, 87243, 90832, 94421, 98010, 101598, 105187,
             108775, 112364, 115953, 119541, 123129, 126717, 130307, 133896, 137483, 141072, 144660, 148248, 151837, 155427, 159014, 162604, 166192, 169780, 173369, 176958, 180545, 184133, 187723, 191311]
    hit2 = 4
    data3 = [0, 51583, 63545, 75507, 87469, 99429, 111393, 123354, 135315, 147277, 159238, 171201, 183162, 195124, 207085, 219048, 231010, 242970, 254933, 266894, 278857, 290818, 302779, 314741, 326702, 338666,
             350626, 362588, 374550, 386511, 398474, 410435, 422397, 434358, 446322, 458282, 470243, 482206, 494166, 506130, 518091, 530053, 542014, 553976, 565938, 577899, 589862, 601823, 613784, 625747, 637707]
    hit3 = 1
    data4 = [0, 77376, 95320, 113260, 131204, 149145, 167089, 185032, 202973, 220916, 238860, 256801, 274745, 292688, 310629, 328572, 346514, 364457, 382401, 400341, 418285, 436227, 454170, 472113, 490056,
             507997, 525941, 543882, 561826, 579769, 597712, 615653, 633596, 651538, 669482, 687424, 705367, 723308, 741252, 759194, 777137, 795079, 813023, 830964, 848908, 866850, 884792, 902735, 920677, 938620, 956563]
    hit4 = 1
    data5 = [0, 5156, 6353, 7548, 8745, 9941, 11137, 12333, 13530, 14726, 15923, 17119, 18315, 19512, 20707, 21903, 23100, 24297, 25491, 26688, 27884, 29080, 30276, 31472, 32669, 33865,
             35060, 36257, 37454, 38649, 39846, 41043, 42237, 43435, 44632, 45827, 47023, 48219, 49416, 50611, 51807, 53004, 54201, 55395, 56592, 57789, 58985, 60182, 61376, 62573, 63770]
    hit5 = 10


class classChange(Character):
    def __init__(self, equVersion=""):
        self.实际名称 = 'ranger_male'
        self.名称 = '重霄·漫游枪手'
        self.角色 = '神枪手(男)'

        self.职业 = '漫游枪手'
        # 用来筛CP武器的
        self.转职 = '漫游枪手(男)'
        self.武器选项 = ['左轮枪']
        self.输出类型选项 = ['物理百分比']
        self.防具精通属性 = ['力量']
        self.类型 = '物理百分比'
        self.武器类型 = '左轮枪'
        self.防具类型 = '皮甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 2.25

        super().__init__(equVersion)
